package com.game.utils;

/**
* @author oven:
* @version 创建时间：2012-11-7 下午12:53:09
* 
*/
public class AnimationInterpolatorUtil {
	/**
	 * 传入的参数都是  当前时间与总时间的百分比  [0,1]
	 * 输出的参数都是  运动长度比
	 */
	
	
	/**
	 * 先加速 后 减速
	 * @param input
	 * @return
	 */
	public static float getAccelerateDecelerate(float input){
		return (float)(Math.cos((input + 1f) * Math.PI) / 2.0f) + 0.5f;
	}
	
	/**
	 * 变减速
	 * @param input
	 * @return
	 */
	public static float getDecelerate(float input){
		return (1.0f - (1.0f - input) * (1.0f - input));
	}
	
	/**
	 * 变加速
	 * @param input
	 * @return
	 */
	public static float getAccelerate(float input){
		return input*input;
	}
	
	/**
	 * 自定义的加速减速效果
	 * @param input
	 * @return
	 */
	public static float getMyAccelerateDecelerate(float input){
		if (input < 0.4) {
			return (float)(input*input);
	    }else if (input >= 0.4 &&input <= 0.6) {
	    	return (float)(3.4*input - 1.2);
	    }else{
	    	return (float)(1.0f - (1.0f - input) * (1.0f - input));
	    } 
	    
	}

}

